package com.wiscamp.ninechapters.problems.adapter.items;

import com.wiscamp.ninechapters.ddd.PersistenceObject;
import com.wiscamp.ninechapters.problems.infrastructure.po.problems.QuestionPO;
import com.wiscamp.ninechapters.tags.domain.models.TagName;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;

/**
 * 题
 */
@Data
public class ItemDto implements PersistenceObject {
    /**
     * 题编号
     */
    private long itemId = 0;

    /**
     * 题型编号
     */
    private long itemTypeId = 0;

    /**
     * 题分数
     */
    private double itemScore = 0;

    /**
     * 答题时限
     */
    private int timeLimit = 0;

    /**
     * 难度
     * 通常为所有Question的平均难度
     */
    private int difficulty = 0;

    /**
     * 备注
     */
    private String remark = "";

    /**
     * 是否可用
     */
    private boolean active = true;

    /**
     * 是否删除
     */
    private boolean deleted = false;
    /**
     * 创建用户
     */
    private long createUser = 0;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 编辑用户
     */
    private long editUser = 0;

    /**
     * 编辑时间
     */
    private LocalDateTime editTime;

    /**
     * 时间戳
     */
    private LocalDateTime timeStamp;


    /**
     * 问题列表
     */
    private Collection<QuestionDto> questions = new ArrayList<>();

    /**
     * 问题模式名称
     */
    private String questionModeName = "";

    /**
     * 题关联知识点列表
     */

    /**
     * 题关联标签名称列表
     */
    Collection<TagName> tagNames = new ArrayList<>();

    /**
     * 获取问题列表中的第一个问题
     *
     * @return Question
     */
    public QuestionDto getFirstQuestion() {
        if (questions != null && !questions.isEmpty()) {
            return (QuestionDto) questions.toArray()[0];
        }
        return null;
    }
}